#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int p = 1e9+7;
const int maxn= 1e7+10;
int fac[maxn]; // 阶乘
int n, m;

int qmi(int a, int b){
	int res=1;
	while(b){
		if(b&1){
			res=res*a%p;
		}
		a=a*a%p;
		b>>=1;
	}
	return res;
}

int inv(int x){ // 逆元
	return qmi(x, p-2);
}

int C(int n, int m){
	if (n<0||m<0||n<m) {
		return 0;
	}
	return fac[n]*inv(fac[n-m])%p*inv(fac[m])%p;
}

void solve(){
	cin>>n>>m;
	fac[0]=1;
	for (int i=1;i<=1e7;i++) {
		fac[i]=fac[i-1]*i%p;
	}
	
	int ans=(C(4, 2)*qmi(2,n)%p+C(4, 2)*qmi(2,m)%p-24+p)%p;
	cout << ans<<'\n';
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
